home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / e / amigae30a_fr.lha / AmigaE30f / Sources / Tools / EasyGUI / EasyGUI.doc next >
Encoding:
INI File  |  1994-10-06  |  5.0 KB  |  154 lines

  1. [Désolé, j'ai travaillé la dessus juste avant la distrubition, et c'est
  2.  loin d'être terminé. C'est à cause d'un mauvais timing :-).
  3.  Enfin bon, partez à l'aventure et essayez le! mais sachez que certaines
  4.  choses changeront, d'autre ne marche pas pour me moment (ou pas comme il
  5.  faut). Ci-dessous sont quelques morceaux de la documentation, et à la fin
  6.  vous verrez ce qu'il manque...]
  7.  
  8.  
  9.                         Introduction au nouveau :
  10.  
  11.                              E A S Y G U I
  12.  
  13.     Un contructeur d'interface pour le E, avec les caractèristiques suivantes:
  14.  
  15.         - complètement sensible aux polices de caractères
  16.         - possibilité de modifier la taille
  17.         - s'organise tout seul, ie il arrange ses gadgets en fonction
  18.         - est dans le pur style Guide
  19.         - rapide et flexible
  20.         - relativement petit, n'a pas besoin de bibliothèque supplémentaire
  21.         - et par dessus tout: très facile à utiliser!!!
  22.  
  23.  
  24. EasyGUI prend la forme d'un module qui a bvesoin d'être unclue dans votre
  25. source E. Le façon le plus simple de construire u GUI consiste à appeler
  26. la fonction easygui() avec une liste E (pourquoi pas dynamique) qui décrit
  27. votre GUI. Pour vous montrer la simplicité, essayez ce source:
  28.  
  29.         MODULE 'tools/EasyGUI'
  30.         PROC main() IS easygui('Euh,...',[BUTTON,0,'Ok!'])
  31.  
  32. Il ouvrira une fenêtre avec juste un gadget, et attendra que l'utilisateur
  33. y appuye. Si easygui() ne peut pas prendre ce qu'il veut, il enerra des
  34. exceptions, donc on aura certainement besoin d'un gestionnaire
  35. d'exceptions pour être capable d'en informer l'utilisateur.
  36.  
  37. e premier argument d'easygui() est le titre de la fenêtre,le second est la
  38. description du GUI. La forme de ces descriptions est simple : c'est une
  39. liste avec comme premier élément le type de gadget, le second est appelé une
  40. valeur d'action (dans la suite), et le reste est spécifique au gadget.
  41.  
  42. Pour être capable de construire un GUI de plusieurs composants, il est
  43. possible de grouper les gadgets en lignes (ROW) et colonnes (COL):
  44. To b
  45. [COL,
  46.   [BUTTON,1,'Ok'],
  47.   [BUTTON,0,'Cancel']
  48. ]
  49.  
  50. Ceci créera un nouveau groupe, consistant en 2 gadgets cote à cote.
  51. Les groupes COL et ROW sont comme un seul gadget, ie vous pouvez facilement
  52. les mettre dans d'autres groupes, pour créer des GUIs d'un compléxité
  53. infinie.
  54. Par exemple,essayez ce source:
  55.  
  56. ------------------------
  57. Voilà pour la documentation que j'ai tapé. Plus d'infos:
  58.  
  59. Les groupes:
  60.  
  61.     ROWS,EQROWS,COLS,EQCOLS,BEVEL
  62.  
  63. Gadgets etc.
  64. Format général: [NOM,action,texte,...]
  65. dans {}: dans quelle direction il peut changer la taille.
  66. * = non implémenté où manque de bouts.
  67.  
  68. [BUTTON,action,intext]
  69. buttonaction(info)
  70.  
  71. [CHECK,action,textedroit,booléen,textboolgauche]
  72. checkaction(info,booléen)
  73.  
  74. *[INTEGER,action,textegauche,num]
  75. integeraction(info,newnum) {x}
  76.  
  77. *[LISTV,action,textabove,xsize,xsize,execlist,litbool,selection]   (selection: 0=aucun, 1=lit, 2=gadget string)
  78. listviewaction(info,num_selected) {x,y}
  79.  
  80. [MX,action,textedroit,nil_term_elist,textegauchebool]
  81. mxaction(info,num_selected)
  82.  
  83. *[CYCLE,action,textegauche,nil_term_elist]
  84. cycleaction(info,num_selected)
  85.  
  86. *[PALETTE,action,textegauche,depth,relx,rely]
  87. paletteaction(info,couleur) {x,y}
  88.  
  89. *[SCROLL,action,isvert,total,top,visible]
  90. scolleraction(info,curtop) {x|y}
  91.  
  92. *[SLIDE,action,textegauche,isvert,min,max,cur]     -> a un afficheur de niveau??
  93. slideraction(info,cur) {x|y}
  94.  
  95. [STR,action,textegauche,initial,maxcaract,relsize]
  96. stringaction(info,nouvchaine) {x}
  97.  
  98. *[TEXT,text,textegauche,bordbool] {x}
  99.  
  100. *[NUM,int,textegauche,bordbool] {x}
  101.  
  102. *[RENDER,actionr,actionp,x,y]               -> en unites de fonte
  103. renderrefresh(x,y,xs,ys)
  104. renderpress(x,y)                           -> relatif au coin haut-gauche
  105.  
  106. *[RENDERFIXED,actionr,actionp,x,y]          -> en pixels
  107. renderfixedrefresh(x,y)
  108. renderfixedpress(x,y)
  109.  
  110. [SBUTTON] {x}                   -> pareil que bouton.
  111.  
  112.  
  113. Codes d'action:
  114. - un entier entre 0..999
  115.   dogui() fermera tout et sortira avec ce code
  116. - un pointeur sur une procédure pour éxécuter une action. Le type de procédure
  117.   (i.e. nombre d'arguments) diffère avec chaque gadgets. Après avoir appelé la
  118.   procédure, dogui() continuera normalement ce gui, jusqu'à ce que le procédure
  119.   retourne FALSE.
  120.  
  121.  
  122. Les exceptions:
  123.  
  124. "MEM"   -- pas de mémoire
  125. "GUI"   -- pour des chose comme CreateGadgetA, OpenWindowTagList etc.
  126. "GT"    -- ne peut ouvrir la gadtools.library
  127. "DF"    -- idem pour diskfont
  128. "Egui"  -- un erreur dans le design : très probablement dû à une liste de dogui()
  129.            qui étaittrop longue ou trop courte.
  130. <other> -- Levée par la fonction elle-même
  131.  
  132.  
  133. Exemple d'utilisation de 3 autres fonctions (= définition easygui())
  134.  
  135.  
  136. PROC easygui(windowtitle,gui,info=NIL,screen=NIL,prefs=0,textattr=NIL) HANDLE
  137.   DEF gh=NIL:PTR TO guihandle,res=-1
  138.   gh:=guiinit(windowtitle,gui,info,screen,prefs,textattr)
  139.   WHILE res<0
  140.     Wait(gh.sig)
  141.     res:=guimessage(gh)
  142.   ENDWHILE
  143. EXCEPT DO
  144.   cleangui(gh)
  145.   IF exception THEN ReThrow()
  146. ENDPROC res
  147.  
  148.  
  149. Ce qui n'a pas été fait:
  150. - il utilise la police de caractères du système au lieu de la police de
  151.   l'écran
  152. - n'essayepas des polices plus petites si le GUI ne va pas
  153. et beaucoup de petits problêmes...
  154.